* Makefile.in (do-install): Don't remove a destination directory
authorJim Blandy <jimb@redhat.com>
Wed, 26 May 1993 18:27:58 +0000 (18:27 +0000)
committerJim Blandy <jimb@redhat.com>
Wed, 26 May 1993 18:27:58 +0000 (18:27 +0000)
if it's the same as the source.  If ${srcdir}/info == ${infodir},
don't try to copy the info files.

* Makefile.in (COPYDIR, COPYDESTS): Don't mention etc twice; this
doesn't work if you're not using a separate source directory.
(do-install): Copy the build tree's etc directory only after
making sure it's not also the source tree's etc directory.

Makefile.in

index 95ca4de7836e29b70ff0ecb34052c82d3057bba4..7b00ca8c3da133e877f06a4c5f79a1f6cf772cbb 100644 (file)
@@ -204,8 +204,8 @@ SUBDIR_MAKEFILES = lib-src/Makefile src/Makefile oldXMenu/Makefile
 # When installing the info files, we need to do special things to
 # avoid nuking an existing dir file, so we don't do that here;
 # instead, we have written out explicit code in the `install' targets.
-COPYDIR = etc ${srcdir}/etc ${srcdir}/lisp ${srcdir}/external-lisp
-COPYDESTS = ${etcdir} ${etcdir} ${lispdir} ${externallispdir}
+COPYDIR = ${srcdir}/etc ${srcdir}/lisp ${srcdir}/external-lisp
+COPYDESTS = ${etcdir} ${lispdir} ${externallispdir}
 
 all:   src/paths.h ${SUBDIR}
 
@@ -330,7 +330,12 @@ do-install: mkdir
            exec_prefix=${exec_prefix} bindir=${bindir} libdir=${libdir} \
            archlibdir=${archlibdir})
        -set ${COPYDESTS} ; \
-        rm -rf ${COPYDESTS} ; \
+        for dir in ${COPYDIR} ; do \
+          if [ `(cd $$1 ; pwd)` != `(cd $${dir} ; pwd)` ] ; then \
+            rm -rf $${dir} ; \
+          fi ; \
+        done
+       -set ${COPYDESTS} ; \
         mkdir ${COPYDESTS} ; \
         for dir in ${COPYDIR} ; do \
           dest=$$1 ; shift ; \
@@ -345,13 +350,23 @@ do-install: mkdir
                 rm -f  $${subdir}/*~ ; \
               done) ; \
         done
-       -(cd ${srcdir}/info ; \
-         if [ ! -f ${infodir}/dir ] && [ -f dir ]; then \
-           ${INSTALL_DATA} dir ${infodir}/dir ; \
-         fi ; \
-         for f in cl* emacs* forms* info* vip* ; do \
-           ${INSTALL_DATA} $$f ${infodir}/$$f ; \
-         done)
+       -[ `(cd etc; /bin/pwd)` != `(cd ${etcdir}; /bin/pwd)` ] \
+        && (echo "Copying ./etc..." ; \
+              (cd ./etc; tar cf - . )|(cd ${etcdir}; umask 0; tar xvf - ); \
+              for subdir in `find ${etcdir} -type d ! -name RCS -print` ; do \
+                rm -rf $${subdir}/RCS ; \
+                rm -rf $${subdir}/CVS ; \
+                rm -f  $${subdir}/\#* ; \
+                rm -f  $${subdir}/*~ ; \
+              done)
+       -[ `(cd ${srcdir}/info; /bin/pwd)` != `(cd ${infodir}; /bin/pwd)` ] \
+        && (cd ${srcdir}/info ; \
+            if [ ! -f ${infodir}/dir ] && [ -f dir ]; then \
+              ${INSTALL_DATA} dir ${infodir}/dir ; \
+            fi ; \
+            for f in cl* emacs* forms* info* vip* ; do \
+              ${INSTALL_DATA} $$f ${infodir}/$$f ; \
+            done)
        cd ${srcdir}/etc; for page in emacs etags ctags ; do \
          ${INSTALL_DATA} $${page}.1 ${mandir}/$${page}${manext} ; \
        done